{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0dd2628b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import ctypes\n",
    "import time\n",
    "ll = ctypes.cdll.LoadLibrary\n",
    "lib = ll('./ccc/a/fnt-master/build/install/libfnt_libpy.so')\n",
    "lib.create.restype = ctypes.POINTER(ctypes.c_int)\n",
    "handler = lib.create(b'y00021760.x00013312.hevc')\n",
    "#handler = lib.create(b'ch00ds.nrrd')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "fe07c860",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True c_long(256) c_long(256) c_long(77)\n"
     ]
    }
   ],
   "source": [
    "w = ctypes.c_longlong(0)\n",
    "h = ctypes.c_longlong(0)\n",
    "d = ctypes.c_longlong(0)\n",
    "lib.getSizes.restype = ctypes.c_bool\n",
    "tag = lib.getSizes(handler,ctypes.byref(w),ctypes.byref(h),ctypes.byref(d))\n",
    "print(tag,w,h,d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1c260b12",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "0.04915285110473633\n"
     ]
    }
   ],
   "source": [
    "a = time.time()\n",
    "#ptr = ctypes.c_char_p(str(\"\").encode())\n",
    "ptr = (ctypes.c_char*(77*256*256*2))()\n",
    "x0 = ctypes.c_long(0)\n",
    "y0 = ctypes.c_long(0)\n",
    "z0 = ctypes.c_long(0)\n",
    "ystride = ctypes.c_longlong(256*2)\n",
    "zstride = ctypes.c_longlong(256*256*2)\n",
    "lib.readData.restype = ctypes.c_bool\n",
    "tag = lib.readData(handler,ptr,x0,y0,z0,ystride,zstride)\n",
    "print(tag)\n",
    "b = time.time()\n",
    "print(b-a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6bec3e93",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "13f32dda91694f39a34d9c0322c68d38",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/5046272 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7fe5eb8b7670>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from tqdm.notebook import tqdm as tool_bar\n",
    "tmp = []\n",
    "tmp2 = []\n",
    "for i in tool_bar(range((256*256*77))):\n",
    "    tmp.append(int.from_bytes(ptr[i*2:i*2+2],'little'))\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "tmp = np.array(tmp).reshape(77,256,256)\n",
    "plt.imshow(np.sum(tmp,axis=-1).T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "adf8ea5c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "neuronVis",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3 (default, Jul  2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)]"
  },
  "vscode": {
   "interpreter": {
    "hash": "e1da01a652087c3f485a2a8b69806c32fa3b3acf94bcdc0c1ef74e2af5cc794e"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
